An intra-prediction is used for H.264/AVC (an international standard video compression scheme for a video) and for HEVC (ISO/IEC 23008: High Efficiency Video Coding). In the intra-prediction, a frame image is divided into blocks, and a prediction mode is selected that indicates how to perform an intra-prediction on a processing target block in the frame image from pixels in an encoded left adjacent block in the frame image and in an encoded upper adjacent block in the frame image (adjacent pixels). Then, an intra-prediction is performed using the selected prediction mode, so as to generate a prediction image of the processing target block. Next, in the processing target block, a prediction residual (prediction error) signal that corresponds to a difference between an original image and the prediction image. The prediction residual signal is transformed into a signal in the spatial frequency domain using the discrete cosine transform (DCT) or the discrete wavelet transform (DWT), and the signal in the spatial frequency domain is then quantized. Using an entropy coding, the quantized signal is binarized together with information on the prediction mode used for the intra-prediction, and is output as an encoded image signal. The similar coding scheme is applicable to a still image.
In HEVC, coding is performed for each block called a coding unit (CU). Each CU is divided into blocks each of which is called a prediction unit (PU) and on which a prediction is performed, and the PU is used for an intra-prediction. Video coding standards before the HEVC standard apply recursive processing in which it is determined whether a quad-tree partitioning is to be performed to divide a CU. Further, with respect to a PU that is a unit on which an intra-prediction is performed, video coding standards before the HEVC standard also apply processing in which it is determined whether the size of a CU is to be unchanged or the CU is to be divided using a quad-tree partitioning. Thus, all of the blocks obtained by division have a square shape. On the other hand, the Joint Video Exploration Team (JVET) jointly established by the ISO/IEC SC29/WG11 (MPEG) and the ITU-T SG16 WP3/Q6 (VCEG) conducts researches on a next-generation video coding. Block partitioning called the quad-tree plus binary tree (QTBT) block partitioning which makes it possible to perform not only a quad-tree block division but also a binary tree block division to divide a CU has been proposed in the JVET. When the QTBT block partitioning is used, a binary tree block division can be performed on a CU to generate a PU, and this results in being able to select not only a square block but also a rectangular block as a PU block.
As described above, when an intra-prediction is used, a prediction image for a processing target block is generated using adjacent pixels in an encoded left adjacent block and in an encoded upper adjacent block, so there is a demand for a technology that efficiently performs an intra-prediction on a rectangular block from adjacent pixels.
The following technology is known as a conventional technology that performs an intra-prediction efficiently (see, for example, Japanese Laid-open Patent Publication No. 2016-027756). First, a reference pixel signal is set from a decoded pixel signal in intra-prediction in which a prediction signal is generated in the same frame. Next, prediction mode identification information that identifies a prediction mode is acquired. Next, a prediction signal is generated based on the reference pixel signal and the prediction mode identification information. Next, in the prediction mode identified by the prediction mode identification information, a determination regarding correction of the prediction signal is performed using a reference pixel having a shorter distance from a prediction target pixel. Further, the generated prediction signal is corrected according to a result of the determination. The determination includes determining a correction range of the prediction target pixel from a parameter indicating a shape of a function, the function being defined using a decoded pixel adjacent to the upper left side of a prediction target block as an origin. In this configuration, an decoded reference pixel situated closer to a prediction target pixel is used to generate a prediction signal when an intra-prediction is used, which results in being able to reduce a prediction residual energy and to improve a subjective image quality and an encoding efficiency.
As described above, in an intra-prediction before the HEVC standard, all of the processing target block have a square shape, so there is no difference in distance between a prediction from a left adjacent pixel and a prediction from a an upper adjacent pixel. However, such a relationship will be changed if it is possible to use a processing target block having a rectangular shape due to the usage of the above-described QTBT block partitioning and an intra-prediction is performed on the rectangular block. For example, in the case of a horizontally long rectangular block, a left adjacent pixel is situated away from a respective prediction target pixel in the rectangular block. On the other hand, in the case of a vertically long rectangular block, an upper adjacent pixels is situated away from a respective prediction target pixel in the rectangular block.
Thus, conventionally, if an intra-prediction is performed on a rectangular block and a prediction image is generated using distant adjacent pixels, there will be a decrease in prediction efficiency and an energy of the prediction residual signal described above will be more likely to be increased. This results in a decrease in encoding efficiency.
In the conventional technology described above that corrects a prediction target pixel from a parameter indicating a shape of a function, there is a need to encode a number that identifies correction information or a parameter indicating a shape of a function and to transmit it to the decoding side, in order to improve an encoding performance. This may result in a decrease in transmission efficiency.